package content

import (
	"github.com/flipped-aurora/gin-vue-admin/server/global"
	"time"
)

// Content 内容模块
type Content struct {
	ID               int64                `gorm:"primaryKey;autoIncrement" json:"id"`                        // ID 主键
	CommunityID      uint                 `gorm:"index:idx_community_publisher;not null" json:"communityId"` // CommunityID 所属社区
	PublisherID      uint                 `gorm:"index:idx_community_publisher;not null" json:"publisherId"` // PublisherID 发布者ID
	Type             global.ContentType   `gorm:"index;not null" json:"type"`                                // Type 内容类型（0-动态，1-提问，2-回答，3-评论）
	Title            string               `gorm:"size:255" json:"title"`                                     // Title 标题，可选，提问/帖子用
	Body             string               `gorm:"type:text;not null" json:"body"`                            // Body 内容文本
	ParentID         int64                `gorm:"index" json:"parentId"`                                     // ParentID 父内容ID（用于问题-回答或动态-评论的父子关联）
	Status           global.ContentStatus `gorm:"default:0;not null" json:"status"`                          // Status 状态（0-正常，1-删除/封禁）
	CreateTime       time.Time            `gorm:"autoCreateTime" json:"createTime"`                          // CreateTime 创建时间
	UpdateTime       time.Time            `gorm:"autoUpdateTime" json:"updateTime"`                          // UpdateTime 更新时间
	EnableProfRating bool                 `gorm:"default:false" json:"enableProfRating"`                     // EnableProfeRating 是否启用专业评分
	Stats            ContentStats         `gorm:"foreignKey:ContentID;references:ID" json:"-"`               // 互动数据
}

// TableName 指定表名
func (Content) TableName() string {
	return "content"
}
